###############################################################################   
#### Replication Materials                                                 #### 
#### Kim, Nakka, Gopal, Desmrais, Mancinelli, Harden, Ko, Boehmke. 2021.   ####
#### Attention to the COVID-19 pandemic on Twitter:                        ####
#### Partisan differences among U.S. state legislators                     ####
#### Legislative Studies Quarterly                                         ####
###############################################################################  


###############################################################################
################################### Set Up ####################################
###############################################################################

# packages -------------------------

lapply(c('tidyverse', 'readr', 'DMwR2', 'sqldf', 'tidyr', 'dplyr', 'ggplot2', 
         'ggrepel', 'tm', 'knitr'), 
  require, 
  character.only = TRUE
  )

# read data (RDS) -------------------------

party_10k_dtm <- readRDS("party_10k_dtm.rds")


###############################################################################
###################### Generate FW Plots for Figure 1 #########################
###############################################################################

# specify party labels -------------------------

party = c(rep("Democrat", 5000), rep("Republican", 5000))
  
# run FW function -------------------------

source("fwgroups_function.r") # or run entire fwgroups_function.r script

party_10k_grps <- fwgroups(party_10k_dtm, 
                           groups = as.factor(party))

fwkeys.party.10k <- fw.keys(party_10k_grps, 
                            n.keys = 20)

kable(fwkeys.party.10k)

as.data.frame(fwkeys.party.10k)

# search for "•" or any other prominent symbols -------------------------

which(grepl("•",party_10k$full_text))

class(party_10k) 

party_10k[943, "full_text"] #\n = new line -> going to next line / conclusion dot symbols are bullet points in the tweets 

# create FW plot -------------------------

fw.party.10k <- fw.ggplot.groups(party_10k_grps,sizescale = 4,
                                 max.words= 100,
                                 max.countrank = 400,
                                 colorpalette=c("blue","red"))